type-aware linting